// pages/index/index.js
import request from '../../utils/request'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    bannerList: [], // 轮播图数据
    recommendList: [], // 推荐歌单
    topList: [], //排行榜数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    // 获取轮播图的数据
    const { banners } = await request('/banner', {
      type: 1,
    })
    this.setData({
      bannerList: banners,
    })
    // 获取推荐歌单的数据
    const { result } = await request('/personalized', {
      limit: 10,
    })
    this.setData({
      recommendList: result,
    })
    // 获取排行榜数据
    // 1.需求分析，根据idx的值获取对应的数据
    // 2.idx的取值范围是0-20，我们需要0-4
    // 3.我们需要发送5次请求
    const topArr = []
    for (let idx = 0; idx < 5; idx++) {
      const { playlist } = await request('/top/list', {
        idx,
      })
      const topObj = {
        name: playlist.name,
        topListData: playlist.tracks.slice(0, 3),
      }
      topArr.push(topObj)
      //不需要等待5次请求 用户体验好
      this.setData({
        topList: topArr,
      })
    }
    // 更新topList的状态值,放在此处更新会导致发送请求的过程中页面白屏，用户体验差
    // this.setData({
    //   topList: topArr,
    // })
  },
  //跳转到推荐歌曲
  handleToRecommendSong() {
    wx.navigateTo({
      url: '/songPackage/pages/recommendSong/recommendSong',
    })
  },
  handleToOther() {
    wx.navigateTo({
      url: '/otherPackage/pages/other/other',
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
})
